import {TypeClassifier} from "../../../component/TypeClassifier/TypeClassifier.js";
import {MessageWindow} from "../../../component/MessageWindow/MessageWindow.js";
import {TestData, GetMessage} from "./GetMessgae.js"

// 分类器
var messageClassifier = TypeClassifier(document.querySelector(".messageClassifier"));

// 信息列表
var messageWindow = MessageWindow(document.querySelector(".messageWindow"));

async function initClassAndMessage(preData) {
    let Data = preData;

    // 遍历数据
    Data.AClassList.forEach((AClass, index) => {
        // 创建类
        let classData = {
            img: AClass.AClassImg,
            text: AClass.AClassName,
        }
        messageClassifier.addTypeClass(classData);

        // 创建信息列表及其块
        messageWindow.addMessagePage();
        // 添加块
        AClass.ClassInfList.forEach((classInf) => {
            let blockData = {
                href: classInf.Link,
                img: classInf.Img,
                labelTime: classInf.Time,
                labelTitle: classInf.Title,
                labelFrom: classInf.From,
            };
            messageWindow.addMessageBlockForPage(index, blockData);
        });
    });

    // 大小设置
    messageClassifier.setSize(1);
    messageWindow.setSize(1);
    let timeout = null;
    window.addEventListener("resize", () => {
        clearTimeout(timeout);
        timeout = setTimeout(() => {
            messageClassifier.setSize(1);
            messageWindow.setSize(1);
        });
    });
}

// 自适应与联动
async function linkClassAndMessage() {
    // 点击联动
    messageClassifier.setClickCallBack((index) => {
        messageWindow.setCheckedPage(index);
    });
    messageClassifier.addClickRespon();
    // 滚动联动
    messageWindow.setScrollCallBack((index) => {
        messageClassifier.setCheckedClass(index);
    })
    messageWindow.addScrollRespon();
    // 初始页面
    setTimeout(() => {
        messageClassifier.setCheckedClass(0);
    }, 200);
}

let messageData = await GetMessage(TestData, "HomeList");
await initClassAndMessage(messageData);
await linkClassAndMessage();

